Package-level declarations

Types

Link copied to clipboard
class AuthenticationException(message: String, cause: Throwable? = null) : RuntimeException
Link copied to clipboard
data class AuthRefreshPolicy(val refreshOnStatusCodes: Set<Int> = setOf(401), val maxRefreshAttempts: Int = 1)
Link copied to clipboard
Link copied to clipboard
data class DownloadedContent(val bytes: ByteArray, val statusCode: Int, val headers: Headers, val contentLength: Long?, val contentType: ContentType?)
Link copied to clipboard
data class DownloadProgress(val bytesRead: Long, val totalBytes: Long?)
Link copied to clipboard
sealed class DownloadResult
Link copied to clipboard
sealed class NetworkResult<out T, out E>
Link copied to clipboard
data class RetryPolicy(val maxRetries: Int = 3, val initialDelay: Duration = 500.seconds / 1000, val maxDelay: Duration = 5.seconds, val backoffFactor: Double = 2.0, val retryOnStatusCodes: Set<Int> = setOf(408, 429, 500, 502, 503, 504), val retryOnRequestError: Boolean = true)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
fun HttpRequestBuilder.bearerToken(token: String)
Link copied to clipboard
Link copied to clipboard
inline suspend fun <T, E> HttpClient.deleteAuthenticatedNetworkResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.deleteAuthenticatedResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.deleteNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.deleteNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.deleteResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP DELETE request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.deleteResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP DELETE request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.deleteResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
suspend fun HttpClient.downloadBytes(urlString: String, bufferSize: Int = DEFAULT_DOWNLOAD_BUFFER_SIZE, block: HttpRequestBuilder.() -> Unit = {}, onProgress: suspend (DownloadProgress) -> Unit = {}): DownloadResult
Link copied to clipboard
Link copied to clipboard
inline fun <T, E, R> NetworkResult<T, E>.fold(onSuccess: (NetworkResult.Success<T>) -> R, onHttpError: (NetworkResult.HttpError<E>) -> R, onResponseDecodingError: (NetworkResult.ResponseDecodingError) -> R, onRequestError: (NetworkResult.RequestError) -> R): R
Link copied to clipboard
inline suspend fun <R, T> Result<T>.foldSuspend(crossinline onSuccess: suspend (value: T) -> R, crossinline onFailure: suspend (exception: Throwable) -> R): R

Performs a fold operation on the Result, executing onSuccess if the Result is a success, or onFailure if the Result is a failure.

Link copied to clipboard
fun HttpRequestBuilder.formBody(parameters: Parameters)
Link copied to clipboard
inline suspend fun <T, E> HttpClient.getAuthenticatedNetworkResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.getAuthenticatedResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.getNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.getNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
Link copied to clipboard
actual fun getPlatformName(): String
expect fun getPlatformName(): String
actual fun getPlatformName(): String
actual fun getPlatformName(): String
Link copied to clipboard
inline suspend fun <T> HttpClient.getResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP GET request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.getResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP GET request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.getResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
fun <T, E> NetworkResult<T, E>.headersOrNull(): Headers?
Link copied to clipboard
inline suspend fun <T, E> HttpClient.headNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.headNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.headResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP HEAD request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.headResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP HEAD request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.headResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
fun HttpRequestBuilder.jsonBody(body: Any)
Link copied to clipboard
inline fun <T, E, R> NetworkResult<T, E>.map(transform: (T) -> R): NetworkResult<R, E>
Link copied to clipboard
inline fun <T, E, R> NetworkResult<T, E>.mapError(transform: (E) -> R): NetworkResult<T, R>
Link copied to clipboard
inline suspend fun <R, T> Result<T>.mapSuspend(crossinline transform: suspend (value: T) -> R): Result<R>

Performs a mapping operation on the Result, transforming the value if the Result is a success.

Link copied to clipboard
inline fun <T, E> NetworkResult<T, E>.onError(action: (NetworkResult<T, E>) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onErrorSuspend(crossinline action: suspend (NetworkResult<T, E>) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline fun <T, E> NetworkResult<T, E>.onFailure(action: (NetworkResult<T, E>) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onFailureSuspend(crossinline action: suspend (NetworkResult<T, E>) -> Unit): NetworkResult<T, E>

inline suspend fun <T> Result<T>.onFailureSuspend(crossinline action: suspend (exception: Throwable) -> Unit): Result<T>

Executes a suspend function action if the current result is a failure.

Link copied to clipboard
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onHttpErrorSuspend(crossinline action: suspend (NetworkResult.HttpError<E>) -> Unit): NetworkResult<T, E>
Link copied to clipboard
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onRequestErrorSuspend(crossinline action: suspend (NetworkResult.RequestError) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onResponseDecodingErrorSuspend(crossinline action: suspend (NetworkResult.ResponseDecodingError) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline fun <T, E> NetworkResult<T, E>.onSuccess(action: (NetworkResult.Success<T>) -> Unit): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> NetworkResult<T, E>.onSuccessSuspend(crossinline action: suspend (NetworkResult.Success<T>) -> Unit): NetworkResult<T, E>

inline suspend fun <T> Result<T>.onSuccessSuspend(crossinline action: suspend (value: T) -> Unit): Result<T>

Executes a suspend function action if the current result is a success.

Link copied to clipboard
inline suspend fun <T, E> HttpClient.optionsNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.optionsNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.optionsResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP OPTIONS request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.optionsResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP OPTIONS request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.optionsResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.patchNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.patchNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.patchResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP PATCH request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.patchResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP PATCH request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.patchResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.postAuthenticatedNetworkResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.postAuthenticatedResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.postNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.postNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.postResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP POST request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.postResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP POST request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.postResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.putAuthenticatedNetworkResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.putAuthenticatedResult(urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.putNetworkResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.putNetworkResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.putResult(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP PUT request synchronously and returns the result as a Result of type T.

Link copied to clipboard
inline suspend fun <T> HttpClient.putResultAsync(urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Deferred<Result<T>>

Executes an asynchronous HTTP PUT request using the provided URL.

Link copied to clipboard
inline suspend fun <T> HttpClient.putResultWithRetry(urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
fun HttpRequestBuilder.queryParams(parameters: Map<String, Any?>)
Link copied to clipboard
inline suspend fun <R, T : R> Result<T>.recoverSuspend(crossinline transform: suspend (exception: Throwable) -> R): Result<R>

Recovers from a failure by executing transform to create a new value if the Result is a failure.

Link copied to clipboard
inline suspend fun <T, E> HttpClient.requestAuthenticatedNetworkResult(method: HttpMethod, urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.requestAuthenticatedResult(method: HttpMethod, urlString: String, tokenProvider: BearerTokenProvider, authRefreshPolicy: AuthRefreshPolicy = AuthRefreshPolicy(), noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.requestNetworkResult(method: HttpMethod, urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T, E> HttpClient.requestNetworkResultWithRetry(method: HttpMethod, urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}, noinline decodeErrorBody: suspend (String) -> E? = { null }): NetworkResult<T, E>
Link copied to clipboard
inline suspend fun <T> HttpClient.requestRawNetworkResult(method: HttpMethod, urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): NetworkResult<T, Nothing>
Link copied to clipboard
inline suspend fun <T> HttpClient.requestResult(method: HttpMethod, urlString: String, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>

Performs an HTTP request and returns the response body as Result.

Link copied to clipboard
inline suspend fun <T> HttpClient.requestResultWithRetry(method: HttpMethod, urlString: String, retryPolicy: RetryPolicy = RetryPolicy(), timeout: Duration? = null, noinline block: HttpRequestBuilder.() -> Unit = {}): Result<T>
Link copied to clipboard
inline suspend fun <R> runCatchingSuspend(crossinline block: suspend () -> R): Result<R>

Executes a suspend function block within a try-catch and returns the result as a Result.

Link copied to clipboard
inline suspend fun <T, R> T.runCatchingSuspend(crossinline block: suspend T.() -> R): Result<R>

Executes a suspend function block on the receiver T within a try-catch and returns the result as a Result.

Link copied to clipboard
inline suspend fun <R> runSafeSuspendCatching(block: suspend () -> R): Result<R>

Runs a suspending function block safely, catching any exceptions that occur during its execution. Returns a Result indicating success or failure of the function.

Link copied to clipboard